作為一個程序員,每天都會編寫一大堆程式碼。但我相信每一個程序員都不能百分之百保證,自己所寫的每一行程式碼都没有錯誤。即使找別的同事做了code review,百密也總是會有一疏。這個時候,我們就可以使用一些檢測工具,去幫我們掃描一下開發的代碼中,是否有潛在的問題。這一類的檢測掃描,我們一般會分類為靜態應用程式安全測試(SAST)。
所以今天我們會介紹一個開源的SAST測試工具去保障我們的代碼質素。而這個好用的工具,就是SonarQube了。
SonarQube是一套基於Java開發的程式檢測碼以及品質管理平台。SonarQube最主要提供了以下的功能。
而開源版本的SonarQube所提供的掃描內容,支援多逹17種程式語言。基本上已經覆蓋了大部份常用的程式語言如Java, Javascript, Ruby, PHP, Python…等。最新的幾個版本甚至支援一些Infrastructure as Code的Framework如Terraform及AWS CloudFormation。如果使用Developer以上的版本,更可以支援Swift, C++等語言。
SoanrQube亦提供了一個網頁化的介面去方便操作。檢測分析後的報告會上傳到網頁上,然後用戶可以在其中查看相關專案的檢查報告。而SonarQube亦會在報告中提供相關程式碼的改善建議。
今天先簡單介紹一下SonarQube。接著的兩天,我們會一起安裝及使用SonarQube進行一下掃描。
SonarQube應該是比較常用的一個工具。在相對大型的企業中開發時,通常客戶方的安全人員都會拿著SonarQube的檢測報告對我們窮追猛打。所以,最好還是自己先掃描一下,那麽才可以保障作為程序員的生命安全(所以這就是所謂的安全工具嗎?)。